Aller au contenu principal

Droits d’admin élevés pour une seule appli, partie deux

  • OK, une approche différente : Trouvons une appli qui va élever une appli spécifique seulement...

    Texte alternatif

J’ai checké plusieurs options différentes : Gsudo, JEA via PowerShell pis créer une tâche avec des droits élevés.

  • Gsudo a techniquement marché, mais pour une raison quelconque, après avoir créé un raccourci pis lui avoir donné tous les droits, si j’me connectais comme un utilisateur de domaine régulier, la fenêtre UAC poppait quand même... peu importe les options que j’ajoutais ou enlevais.

Démo

Gsudo

Administration juste suffisante (JEA)

  • JEA, ou administration juste suffisante, c’est une technologie de sécurité qui permet une administration déléguée pour tout c’qui est géré par PowerShell. Mais quand vient le temps de démarrer un processus en tant qu’admin... encore là, j’ai pas réussi à le faire marcher. Voici c’que j’ai fait :

    1. J’ai créé un dossier de config :
       New-PSSessionConfigurationFile -Path C:\JEA
    1. J’ai créé un JEAConfig.pssc pis voici c’que j’y ai ajouté :
        @{
    SchemaVersion = '2.0.0.0'
    SessionType = 'RestrictedRemoteServer'
    RunAsVirtualAccount = $true # Runs as a local admin account
    ModulesToImport = 'JEACommands'
    VisibleCmdlets = @('Start-Process')
    }
    1. J’ai créé un dossier de module PWSH :
        New-Item -Path "C:\Program Files\WindowsPowerShell\Modules\JEACommands" -ItemType Directory
    1. J’ai créé un script de module que j’ai sauvegardé dans ce dossier-là, appelé JEACommands.psm1 :
        function Start-Launcher {
    Start-Process -FilePath "C:\Path\To\launcher.exe" -Verb RunAs
    }
    Export-ModuleMember -Function Start-Launcher
    1. J’ai enregistré la session JEA :
        Register-PSSessionConfiguration -Name LauncherJEA -Path C:\JEA\JEAConfig.pssc -Force
    1. J’ai ajouté les utilisateurs du domaine dans l’histoire :
        Set-PSSessionConfiguration -Name LauncherJEA -ShowSecurityDescriptorUI
    1. Rendu à cette étape... j’ai réalisé que cet outil-là est plus pour un accès limité sur un serveur ::
        Enter-PSSession -ComputerName YourServer -ConfigurationName LauncherJEA
    Start-Launcher
  • J’ai modifié la dernière commande pour voir si j’pouvais l’exécuter localement... Ça roulait bien du côté admin, mais pas dans une session d’utilisateur de domaine...

RunAsTool

Créons autre chose, basé sur RunAsTool

  • Cet outil-là m’a fait réfléchir : Et si on faisait une appli qui utilise la gestion d’identité privilégiée d’Azure pour élever les droits d’un utilisateur temporairement?

  • Avantages : - Stocke pas le mot de passe admin

    • Seulement les membres d’un groupe spécifique pourraient y avoir accès
    • On pourrait configurer l’authentification multifacteur (MFA)
    • Ça nous permettrait de suivre quand l’utilisateur active ses droits
    • On pourrait programmer ça pour une appli spécifique (genre les droits s’activent juste quand on accède à l’appli)
  • Désavantages : - Faut créer le backend pour que ça marche

    • Faire une appli?
    • Peut-être devoir changer certaines configs des ordis locaux
  • Première chose que j’ai faite : Créer un groupe avec les utilisateurs qui devront activer leurs PIMs

    Créer un groupe

  • Propriétaires : Moi ou un admin (idéalement un admin global)

  • Membres : C’est là que j’devrai ajouter le groupe final, mais pour l’instant, j’ai mis quelques non-admins

  • Pas de rôles, vu qu’ils auront pas besoin de rôles Azure... du moins, j’pense.

  • En jouant avec un script Python, j’ai créé une appli... à peu près, qui appelle une API Graph (Azure). Cette appli-là doit exister dans Azure pis avoir le bon rôle installé : Appli Azure Aperçu Permissions